package cn.labbook.bluetooth.service;

import cn.labbook.bluetooth.common.MyPage;
import cn.labbook.bluetooth.entity.ApplyPay;
import cn.labbook.bluetooth.entity.ApplyRecord;
import cn.labbook.bluetooth.pojo.dto.ApplyRecordDTO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Author: zhangyang
 * @Date: 2023/4/13 14:37
 * @Desc: 申请记录 service 接口
 */
public interface IApplyRecordService extends IService<ApplyRecord> {

    /**
     * 创建申请记录
     *
     * @param ammeterId     电表id
     * @param openId        用户openid
     * @param totalFee      申请金额，单位分
     */
    void create(String ammeterId, String openId, String totalFee);

    /**
     * 获取服务费费率
     */
    Double getPayRate(String adminId);

    /**
     * 创建申请记录
     *
     * @param applyPay  申请支付
     */
    void create(ApplyPay applyPay);

    /**
     * 通过申请
     *
     * @param id    申请记录id
     */
    void handle(Integer id);

    /**
     * 撤回申请
     *
     * @param id    申请记录id
     */
    void back(Integer id);

    /**
     * 获取待同步记录
     *
     * @param openId        用户openId
     * @param ammeterId     电表id
     * @return              待同步记录
     */
    ApplyRecord getWaitSync(String openId, String ammeterId);

    List<ApplyRecordDTO> listWithLandlord(String Date, String userId, MyPage<ApplyRecord> page);

    List<ApplyRecordDTO> listWithTenant(String Date, String openId, MyPage<ApplyRecord> page);

    List<ApplyRecord> getSumPay(String Date,String userId, String openId);

    boolean exist(String openId, Integer status);

    boolean existIn(String userId);

}
